import React, { useEffect, useState } from 'react'

const App = () => {
	const onScroll = () => {
		console.log('页面发生了滚动')
	}
	useEffect(() => {
		window.addEventListener('scroll', onScroll)
		return () => {
			window.removeEventListener('scroll', onScroll)
		}
	}, [])

	const [count, setCount] = useState(0)

	useEffect(() => {
		const timerId = setInterval(() => {
			setCount((count) => count + 1)
		}, 1000)
		return () => {
			clearInterval(timerId)
		}
	}, [])

	// useEffect 的第二个参数
	// 只有指定数据发生变化时触发effect
	useEffect(() => {
		console.log('count数值发生改变')
	}, [count])

	// useEffect 钩子函数结合异步函数
	// useEffect中的参数函数不能是异步函数，因为useEffect函数要返回清理资源的函数，如果是异步函数就变成了返回Promise
	useEffect(async () => {
		let data = await a()
	}, [])

	// 使用这种方法可以是使用
	useEffect(() => {
		;(async () => {
			let a = await getData()
		})()
	}, [])

	return <div>aa</div>
}

export default App
